/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package projovem.relatorios.sintesesupervisao;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import javax.persistence.EntityManagerFactory;
import projovem.dao.NucleoDAO;
import projovem.relatorios.sintesesupervisao.vo.Rotina003SinteseSupervisaoVo;
import projovem.rotinas.R003.Rotina003;
import projovem.rotinas.R003.Rotina003Ficha;
//import projovem.rotinas.R003.Rotina003_Rotina003Ficha;

/**
 *
 * @author admprojovem
 */
public class SinteseSupervisaoRotina003 implements Serializable {

    private NucleoDAO nucleoDao = new NucleoDAO();
    private Rotina003SinteseSupervisaoVo contagem = new Rotina003SinteseSupervisaoVo();

    public Rotina003SinteseSupervisaoVo gerarRelatorio(String coordenacaoEscolhida, String entradaEscolhida, EntityManagerFactory emf) {

        List<Rotina003> listaRotina003 = nucleoDao.obtemNucleosByCoordenacaoAndEntradaAndRotina003(coordenacaoEscolhida, entradaEscolhida, emf);
        contagem.setListaRotina003(listaRotina003);


        for (Rotina003 rotina : listaRotina003) {

            Integer idRotina003 = 0;
            Integer SemCarteira = 0;
            Integer SemComprovante = 0;
            Integer SemRegistro = 0;
            Integer SemTeste = 0;
            String Filtro = "";

            List<Rotina003Ficha> listaRotina003Ficha = rotina.getListaFichas();


            for (Rotina003Ficha ficha : listaRotina003Ficha) {

                if (ficha.getTemCarteiraIdentidade() != null && !ficha.getTemCarteiraIdentidade().isEmpty() && ficha.getTemCarteiraIdentidade().equals("Não")) {
                    SemCarteira = SemCarteira + 1;
                }

                if (ficha.getTemComprovanteResidencia() != null && !ficha.getTemComprovanteResidencia().isEmpty() && ficha.getTemComprovanteResidencia().equals("Não")) {
                    SemComprovante = SemComprovante + 1;
                }

                if (ficha.getTemRegistroEscolar() != null && !ficha.getTemRegistroEscolar().isEmpty() && ficha.getTemRegistroEscolar().equals("Não")) {
                    SemRegistro = SemRegistro + 1;
                }

                if (ficha.getTemTeste() != null && !ficha.getTemTeste().isEmpty() && ficha.getTemTeste().equals("Não")) {
                    SemTeste = SemTeste + 1;
                }
            }

            if (SemCarteira == 0 && SemComprovante == 0 && SemTeste == 0 && SemRegistro == 0) {
                contagem.setDoccompleta(contagem.getDoccompleta() + 1);
            }

            if (SemCarteira != 0) {
                contagem.setSemcarteira(contagem.getSemcarteira() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (SemComprovante != 0) {
                contagem.setSemcomprovante(contagem.getSemcomprovante() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }

            if (SemTeste != 0 || SemRegistro != 0) {
                contagem.setSemregistroouteste(contagem.getSemregistroouteste() + 1);
                contagem.setNegativo(contagem.getNegativo() + 1);
            }
        }

        Integer totalElementos = listaRotina003.size();

        if (contagem.getSemcarteira() != null && contagem.getSemcarteira() != 0) {
            contagem.setSemcarteira((contagem.getSemcarteira() * 100) / totalElementos);
        }

        if (contagem.getSemcomprovante() != null && contagem.getSemcomprovante() != 0) {
            contagem.setSemcomprovante((contagem.getSemcomprovante() * 100) / totalElementos);
        }

        if (contagem.getSemregistroouteste() != null && contagem.getSemregistroouteste() != 0) {
            contagem.setSemregistroouteste((contagem.getSemregistroouteste() * 100) / totalElementos);
        }

        Locale locale = new Locale("pt", "BR");
        GregorianCalendar calendar = new GregorianCalendar();
        SimpleDateFormat formatador = new SimpleDateFormat("dd' de 'MMMMM' de 'yyyy' - 'HH':'mm'h'", locale);
        contagem.setDataatual(formatador.format(calendar.getTime()));
        System.out.println(formatador.format(calendar.getTime()));
        return contagem;
    }
}
